      SUBROUTINE PULSER(ETA)
C
      IMPLICIT REAL*8(A-H,O-Z)
C
C    CONTROL SUBROUTINE FOR THRUSTING.
C
C     CALLED FROM DEREQ1 WHEN KPULSE.NE.IPULSE
C
      COMMON/CSTVAL/TSTART,DUM1(40)
C
      COMMON/ITCNTL/IPULSE,ISPLSE,KPULSE,ITSW,IOTSW,IPLPRP
C
      COMMON/OUTFOR/SUMM(3)
C
      COMMON/RPOOL1/RHOK(10),TIME,DUM2(114)
C
      COMMON/THRUST/TV(3,2),TL(3,2),TT(4,2),TPAR(4,2),REF(2)
C
      COMMON/ACCORB/ ACCOB(3),TRTACC(3),VCF(3)
C
      COMMON/TIMPLS/TMEAN(2),TPULSE(2),TOPLSE(2),TTSTOP(2),DELV(2)
C
C
C
      DIMENSION ETA(7),VCM(3)
C
      IF(TIME.NE.TSTART) GO TO 10
      ITSW=1
      IOTSW=0
      IPCNT =0
C
      DO 1 I=1,IPLPRP
      CALL TOTIMP(TT(1,I),TPAR(1,I),TMEAN(I),DELV(I))
      TPULSE(I)=TIME+TT(1,I)
      TOPLSE(I)=TIME+TMEAN(I)
      TTSTOP(I)=TIME+TT(4,I)
    1 CONTINUE
C
   10 CONTINUE
C
      DO 15 I=1,3
      VCF(I)=0.0D0
      VCM(I)=0.0D0
   15 CONTINUE
C
C     IS A SUN CROSSING THE PULSE REFERENCE
C
      IF(ISPLSE.EQ.0) GO TO 20
C     IT IS A SUN CROSSING REFERENCE CASE
      CALL PULSUN
C
      IF(ITSW.EQ.0) GO TO 20
      IPCNT=0
      GO TO 100
   20 CONTINUE
C
      DO 50 I=1,IPLPRP
      IF(TIME.LT.TPULSE(I)) GO TO 50
      IF(TIME.GT.TTSTOP(I)) GO TO 45
      TMAG=TTRUST(TPULSE(I),TIME,TT(1,I),TPAR(1,I))
C
      DO 30 J=1,3
      VCF(J)=VCF(J)+TMAG*TV(J,I)
   30 CONTINUE
C
      VCM(1)=VCM(1)+TMAG*(TV(3,I)*TL(2,I)-TV(2,I)*TL(3,I))
      VCM(2)=VCM(2)+TMAG*(TV(1,I)*TL(3,I)-TV(3,I)*TL(1,I))
      VCM(3)=VCM(3)+TMAG*(TV(2,I)*TL(1,I)-TV(1,I)*TL(2,I))
      CALL JETDM2(I,VCF,VCM)
C
      IF(TIME.LT.TOPLSE(I)) GO TO 50
      IF(IOTSW.EQ.I) GO TO 50
      IOTSW=IOTSW+1
      CALL ORBUPD(TOPLSE(I),DELV(I),TV(1,I))
      GO TO 50
C
   45 CONTINUE
C
      IF(IPCNT.NE.I) KPULSE=KPULSE+1
      IPCNT=I
C
      IF(I.NE.IPLPRP) GO TO 50
C
      ITSW=1
      IOTSW=0
C
   50 CONTINUE
C
      DO 60 I=1,3
      I1=I+3
      ETA(I)=ETA(I)+VCF(I)
      ETA(I1)=ETA(I1)+VCM(I)
      SUMM(I)=SUMM(I)+VCM(I)
   60 CONTINUE
C
  100 CONTINUE
C
      RETURN
C
      END
